#include "silla.h"

Silla::Silla()
{
    curvatura = 0;
    grosor=0;
    altura=0;
    nombre = "Silla";
    color = 0;

    Modelo::Load("silla.brp");
    Update();
}

void Silla::Update(){
    for(int i=0;i<vertices.count();i++){
        double vx = vertices[i].x;
        double vy = vertices[i].y;
        double vz = vertices[i].z;

        if(i>=16){
            vz+=altura;

            if(i>=28+16){
                vz+=grosor;

                if(i>=28+16+12){
                    vy+=curvatura*((i)/70.0);
                }
            }
        }

        vert_transform[i].x = vx;
        vert_transform[i].y = vy;
        vert_transform[i].z = vz;

        vert_transform_map[vertices[i].nombre].x=vx;
        vert_transform_map[vertices[i].nombre].y=vy;
        vert_transform_map[vertices[i].nombre].z=vz;

    }

    for(int i=0;i<colores.count();i++){

        if(color<=0.5)
            colors_transform[i].r=colores[i].r*(color+0.5);
        if(color>=0.5 && color<=1)
            colors_transform[i].g=colores[i].g*(color);
        if(color>=1 && color<=1.5)
            colors_transform[i].b=colores[i].b*(color-0.5);
        if(color>=1.5){
            colors_transform[i].r=colores[i].r*(color-1);
            colors_transform[i].g=colores[i].g*(color-1);
            colors_transform[i].b=colores[i].b*(color-1);
        }
    }
}

